package com.example.student_system.service;

import com.example.student_system.entity.Student;

import java.util.List;

public interface StudentService {
    
    /**
     * 保存或更新学生信息
     * @param student 学生实体
     * @return 保存后的学生实体
     */
    Student saveStudent(Student student);
    
    /**
     * 根据ID查询学生
     * @param id 学生ID
     * @return 学生实体
     */
    Student getStudentById(Long id);
    
    /**
     * 根据学号查询学生
     * @param studentNumber 学号
     * @return 学生实体
     */
    Student getStudentByNumber(String studentNumber);
    
    /**
     * 获取所有学生列表
     * @return 学生列表
     */
    List<Student> getAllStudents();
    
    /**
     * 根据姓名模糊查询学生
     * @param name 姓名关键字
     * @return 学生列表
     */
    List<Student> getStudentsByName(String name);
    
    /**
     * 根据班级查询学生列表
     * @param className 班级名称
     * @return 学生列表
     */
    List<Student> getStudentsByClass(String className);
    
    /**
     * 删除学生
     * @param id 学生ID
     */
    void deleteStudent(Long id);
    
    /**
     * 检查学号是否已存在
     * @param studentNumber 学号
     * @return 是否存在
     */
    boolean isStudentNumberExists(String studentNumber);
}